#ifndef __LIB_AGORA_USER_H__
#define __LIB_AGORA_ADMIN_USER_H__

#include "IUser.h"
#include "IChannel.h"
#include "IServerRight.h"

class	User : public IUser
{
public:
	User(const unsigned id, const std::string& login, const std::string& password);
	~User(void);

	const unsigned int	GetId() const;
	//const unsigned int	SetId(unsigned int id);
	const std::string&	GetLogin() const;
	const unsigned int	SetLogin(const std::string& login);
	const std::string&	GetPassword() const;
	const unsigned int	SetPassword(const std::string& password);
	IServerRight*		GetServerRight() const;
	const unsigned int	SetNoCurrentChannel(void);

	IChannel*							GetCurrentChannel() const;
	const unsigned int					SetCurrentChannel(IChannel* channel);
	//const std::vector<IChannel*>&		GetChannel() const;
	//const unsigned int					SubscribeChannel(IChannel* channel, const IChannelRight& right); deplace dans channel class
private:
	unsigned int	_id;
	std::string		_login;
	std::string		_password;
	IChannel*		_currentChannel;
	IChannelRight*	_currentChannelRight;
	IServerRight*	_serverRight;

	//std::vector<IChannel*>	_channel; pas besoin de stocker en memoire les chan sur lequel il est registered
};

#endif